1. Field of the Invention
The present invention is directed generally to an information processing apparatus, and a method and computer program product for verification.
2. Description of the Related Art
More and more functions have been demanded for embedded equipment, in which the functions to be provided by the equipment are embedded in advance, so that volume of firmware in such equipment has been increased year by year. Accordingly, a boot time has become longer, rising a concern that the more functionality provided by equipment, the longer the boot time of the equipment. In other words, as functions that can be provided by equipment increases, boot speed of the equipment decreases. This is because a period of time required to load and initialize a resource becomes longer. Examples of reasons why more and more functions have been provided by the equipment are described below.
Functionality provided by an operating system (OS) and firmware has been advanced. The OS that supports virtual memory has been required to support a large volume of application programs, which resulting in bloating of the OS in size.
Peripherals have been diversified. The number of input/output (I/O) devices to be incorporated in equipment has been increased, arising the necessity for firmware application for the I/O devices. Particularly, advancement of functionality of user interface, such as a panel, results in increase in an amount of required data.
Functionality of software has been advanced. Because competition among products is made on a trend toward functionality advancement so as to be differentiated from other products, the number of functions provided by software exponentially increases.
One of techniques to cope with such a circumstance is “hibernation.” In hibernation, memory image stored in a main memory, such as a random access memory (RAM), and data (hereinafter, referred to as operating-state data) that indicates an operating state of equipment, such as context information of hardware such as a central processing unit (CPU), are saved in advance. At boot-up, the thus-saved memory image is expanded, and the context information of the hardware that has been operated and stored in the memory image is restored and operation of the equipment is resumed from the thus-restored point, thereby achieving restoration to the operating state, under which the operating-state data has been saved. Such hibernation allows boot up in a considerably shorter period of time than that of normal boot-up. Techniques related to the hibernation are described in, for instance, Japanese Patent Application Laid-open No. 2004-038545 and Japanese Patent Application Laid-open No. 2004-038546.
Meanwhile, increasing security in embedded equipment has been desired. Under such a circumstance, techniques for preventing tampering of software that operates in embedded equipment have been developed. For instance, disclosed is a scheme with use of a trusted platform module (TPM) that prevents unauthorized execution of software by storing private information about a user in embedded equipment in a concealed manner and performing verification to confirm that software authorized by a manufacture of the embedded equipment be executed on the embedded equipment in, e.g., Japanese Patent Application Laid-open No. 2007-257197.
However, with the technique disclosed in Japanese Patent Application Laid-open No. 2007-257197, hash values or the like of software programs for use at normal boot-up are written into the TPM when performing verification, and then verification is performed by utilizing a fact that what is called a Blob, which is data being an encrypted key, can be decrypted only when a combination of the hash values held in the TPM is correct. Accordingly, the correct combination of the hash values is not obtained at boot-up from hibernation, which differs from normal boot-up, so that it has been difficult to verify software properly.